Amazon QuickSight スイッチロール先のアカウントにあるダッシュボードをワンライナーのコマンドで開く方法
この記事では、ワンライナーでスイッチロール先の AWS アカウントにある QuickSight のダッシュボードを開く手順を紹介します。
事前準備
QuickSight のダッシュボードをワンライナーで開くために必要なツールをまとめます。
awsume コマンド
CLI でマネージメントコンソールを開くために awsume を使用します。普段から利用しており、非常に便利です。
補足
今回は awsume コマンドを使用してマネージメントコンソールを開くため、フェデレーテッドサインインになります。
op コマンド
マネージメントコンソールへのサインイン時に MFA を設定しています。私は 1Password で管理しているため、CLI で処理します。こちらも awsume と併用して普段から利用しています。
QuickSight ダッシュボードを一発で開く
QuickSight のユーザー名確認
ユーザー名の/
より後ろの値を控えておきます。
.aws/config ファイルの設定
プロファイル名はprofile </後半の値を入力>
とします。プロファイル名は任意ですが、QuickSight に登録されているユーザー名の/
より後ろの値と合わせないと別のユーザー扱いになります。編集権限を持つユーザーの場合は意味もなく新規作成しないよう注意してください、そこそこお金がかかります。
[default] region = ap-northeast-1 output = json [profile cm-sandbox] # プロファイル名を QuickSight の登録ユーザー名に合わせる必要がある role_arn = arn:aws:iam::[スイッチロール先のアカウントID]:role/cm-ohmura.yasutaka mfa_serial = arn:aws:iam::[スイッチロール元のアカウントID]:mfa/cm-ohmura.yasutaka source_profile = default
ダッシュボードの URL 確認
お目当てのダッシュボードの URL をブラウザの URL バーからコピーします。
ダッシュボードを開くコマンド作成
以下の形式でコマンドを組み立てます。
awsume [プロファイル名] --mfa-token (op item get "[1passwordのMFA登録名]" --otp) -cs [QuickSightのダッシュボードURL]
実際にダッシュボードを開いたときの例
実際のコマンドは以下のようになります。
awsume cm-sandbox --mfa-token (op item get "AWS_Sandbox" --otp) -cs https://ap-northeast-1.quicksight.aws.amazon.com/sn/dashboards/dddddd-69f9-eeee-ad19-ffffffffff
上記コマンドを実行すると 1Password から指紋認証を一度求められます。
指紋認証を終えると、QuickSight のダッシュボード画面が開きます。
おまけ
コマンドが長くなるためエイリアスを設定しておくと便利です。私は fish ユーザーなので fish の設定例を載せておきます。
fish の場合は config.fish ファイルに書き込みます。
vi ~/.config/fish/config.fish
作成したワンライナーにエイリアスをつけます。
alias open-qs='awsume cm-sandbox --mfa-token (op item get "AWS_Sandbox" --otp) -cs https://ap-northeast-1.quicksight.aws.amazon.com/sn/dashboards/dddddd-69f9-eeee-ad19-ffffffffff'
保存します。
funcsave fish_config
よき、QuickSight ライフを。
おわりに
プロファイル名を QuickSight の登録ユーザー名と合わせないといけない点でハマったので、この記事にまとめました。QuickSight に新規作成するユーザーであれば特に問題なく設定できると思います。